﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class ExpressionParser
   </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class ExpressionParser
   ">
    <meta name="generator" content="docfx 2.59.4.0">
    
    <link rel="shortcut icon" href="../favicon.ico">
    <link rel="stylesheet" href="../styles/docfx.vendor.css">
    <link rel="stylesheet" href="../styles/docfx.css">
    <link rel="stylesheet" href="../styles/main.css">
    <meta property="docfx:navrel" content="../toc.html">
    <meta property="docfx:tocrel" content="toc.html">
    
    <meta property="docfx:rel" content="../">
    
  </head>
  <body data-spy="scroll" data-target="#affix" data-offset="120">
    <div id="wrapper">
      <header>
        
        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="navbar-brand" href="../index.html">
                <img id="logo" class="svg" src="../logo.svg" alt="">
              </a>
            </div>
            <div class="collapse navbar-collapse" id="navbar">
              <form class="navbar-form navbar-right" role="search" id="search">
                <div class="form-group">
                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
                </div>
              </form>
            </div>
          </div>
        </nav>
        
        <div class="subnav navbar navbar-default">
          <div class="container hide-when-search" id="breadcrumb">
            <ul class="breadcrumb">
              <li></li>
            </ul>
          </div>
        </div>
      </header>
      <div class="container body-content">
        
        <div id="search-results">
          <div class="search-list">Search Results for <span></span></div>
          <div class="sr-items">
            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
          </div>
          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
        </div>
      </div>
      <div role="main" class="container body-content hide-when-search">
        
        <div class="sidenav hide-when-search">
          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
          <div class="sidetoggle collapse" id="sidetoggle">
            <div id="sidetoc"></div>
          </div>
        </div>
        <div class="article row grid-right">
          <div class="col-md-10">
            <article class="content wrap" id="_content" data-uid="System.Linq.Dynamic.Core.Parser.ExpressionParser">
  
  
  <h1 id="System_Linq_Dynamic_Core_Parser_ExpressionParser" data-uid="System.Linq.Dynamic.Core.Parser.ExpressionParser" class="text-break">Class ExpressionParser
  </h1>
  <div class="markdown level0 summary"><p>ExpressionParser</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><span class="xref">System.Object</span></div>
    <div class="level1"><span class="xref">ExpressionParser</span></div>
  </div>
  <div class="inheritedMembers">
    <h5>Inherited Members</h5>
    <div>
      <span class="xref">System.Object.ToString()</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.GetHashCode()</span>
    </div>
    <div>
      <span class="xref">System.Object.GetType()</span>
    </div>
    <div>
      <span class="xref">System.Object.MemberwiseClone()</span>
    </div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="System.Linq.Dynamic.Core.Parser.html">System.Linq.Dynamic.Core.Parser</a></h6>
  <h6><strong>Assembly</strong>: System.Linq.Dynamic.Core.dll</h6>
  <h5 id="System_Linq_Dynamic_Core_Parser_ExpressionParser_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public class ExpressionParser</code></pre>
  </div>
  <h3 id="constructors">Constructors
  </h3>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/StefH/System.Linq.Dynamic.Core/new/master/apiSpec/new?filename=System_Linq_Dynamic_Core_Parser_ExpressionParser__ctor_System_Linq_Expressions_ParameterExpression___System_String_System_Object___System_Linq_Dynamic_Core_ParsingConfig_.md&amp;value=---%0Auid%3A%20System.Linq.Dynamic.Core.Parser.ExpressionParser.%23ctor(System.Linq.Expressions.ParameterExpression%5B%5D%2CSystem.String%2CSystem.Object%5B%5D%2CSystem.Linq.Dynamic.Core.ParsingConfig)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/StefH/System.Linq.Dynamic.Core/blob/master/src/System.Linq.Dynamic.Core/Parser/ExpressionParser.cs/#L72">View Source</a>
  </span>
  <a id="System_Linq_Dynamic_Core_Parser_ExpressionParser__ctor_" data-uid="System.Linq.Dynamic.Core.Parser.ExpressionParser.#ctor*"></a>
  <h4 id="System_Linq_Dynamic_Core_Parser_ExpressionParser__ctor_System_Linq_Expressions_ParameterExpression___System_String_System_Object___System_Linq_Dynamic_Core_ParsingConfig_" data-uid="System.Linq.Dynamic.Core.Parser.ExpressionParser.#ctor(System.Linq.Expressions.ParameterExpression[],System.String,System.Object[],System.Linq.Dynamic.Core.ParsingConfig)">ExpressionParser(ParameterExpression[], String, Object[], ParsingConfig)</h4>
  <div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="System.Linq.Dynamic.Core.Parser.ExpressionParser.html">ExpressionParser</a> class.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public ExpressionParser(ParameterExpression[] parameters, string expression, object[] values, ParsingConfig parsingConfig)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Linq.Expressions.ParameterExpression</span>[]</td>
        <td><span class="parametername">parameters</span></td>
        <td><p>The parameters.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">expression</span></td>
        <td><p>The expression.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span>[]</td>
        <td><span class="parametername">values</span></td>
        <td><p>The values.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="System.Linq.Dynamic.Core.ParsingConfig.html">ParsingConfig</a></td>
        <td><span class="parametername">parsingConfig</span></td>
        <td><p>The parsing configuration.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="properties">Properties
  </h3>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/StefH/System.Linq.Dynamic.Core/new/master/apiSpec/new?filename=System_Linq_Dynamic_Core_Parser_ExpressionParser_ItName.md&amp;value=---%0Auid%3A%20System.Linq.Dynamic.Core.Parser.ExpressionParser.ItName%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/StefH/System.Linq.Dynamic.Core/blob/master/src/System.Linq.Dynamic.Core/Parser/ExpressionParser.cs/#L55">View Source</a>
  </span>
  <a id="System_Linq_Dynamic_Core_Parser_ExpressionParser_ItName_" data-uid="System.Linq.Dynamic.Core.Parser.ExpressionParser.ItName*"></a>
  <h4 id="System_Linq_Dynamic_Core_Parser_ExpressionParser_ItName" data-uid="System.Linq.Dynamic.Core.Parser.ExpressionParser.ItName">ItName</h4>
  <div class="markdown level1 summary"><p>Gets name for the <code>it</code> field. By default this is set to the KeyWord value &quot;it&quot;.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public string ItName { get; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/StefH/System.Linq.Dynamic.Core/new/master/apiSpec/new?filename=System_Linq_Dynamic_Core_Parser_ExpressionParser_LastLambdaItName.md&amp;value=---%0Auid%3A%20System.Linq.Dynamic.Core.Parser.ExpressionParser.LastLambdaItName%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/StefH/System.Linq.Dynamic.Core/blob/master/src/System.Linq.Dynamic.Core/Parser/ExpressionParser.cs/#L63">View Source</a>
  </span>
  <a id="System_Linq_Dynamic_Core_Parser_ExpressionParser_LastLambdaItName_" data-uid="System.Linq.Dynamic.Core.Parser.ExpressionParser.LastLambdaItName*"></a>
  <h4 id="System_Linq_Dynamic_Core_Parser_ExpressionParser_LastLambdaItName" data-uid="System.Linq.Dynamic.Core.Parser.ExpressionParser.LastLambdaItName">LastLambdaItName</h4>
  <div class="markdown level1 summary"><p>There was a problem when an expression contained multiple lambdas where the ItName was not cleared and freed for the next lambda.
This variable stores the ItName of the last parsed lambda.
Not used internally by ExpressionParser, but used to preserve compatibility of parsingConfig.RenameParameterExpression
which was designed to only work with mono-lambda expressions.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public string LastLambdaItName { get; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
  </h3>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/StefH/System.Linq.Dynamic.Core/new/master/apiSpec/new?filename=System_Linq_Dynamic_Core_Parser_ExpressionParser_Parse_System_Type_System_Boolean_.md&amp;value=---%0Auid%3A%20System.Linq.Dynamic.Core.Parser.ExpressionParser.Parse(System.Type%2CSystem.Boolean)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/StefH/System.Linq.Dynamic.Core/blob/master/src/System.Linq.Dynamic.Core/Parser/ExpressionParser.cs/#L153">View Source</a>
  </span>
  <a id="System_Linq_Dynamic_Core_Parser_ExpressionParser_Parse_" data-uid="System.Linq.Dynamic.Core.Parser.ExpressionParser.Parse*"></a>
  <h4 id="System_Linq_Dynamic_Core_Parser_ExpressionParser_Parse_System_Type_System_Boolean_" data-uid="System.Linq.Dynamic.Core.Parser.ExpressionParser.Parse(System.Type,System.Boolean)">Parse(Type, Boolean)</h4>
  <div class="markdown level1 summary"><p>Uses the TextParser to parse the string into the specified result type.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public Expression Parse(Type resultType, bool createParameterCtor = true)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Type</span></td>
        <td><span class="parametername">resultType</span></td>
        <td><p>Type of the result.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">createParameterCtor</span></td>
        <td><p>if set to <code>true</code> [create parameter ctor].</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Linq.Expressions.Expression</span></td>
        <td><p>Expression</p>
</td>
      </tr>
    </tbody>
  </table>
</article>
          </div>
          
          <div class="hidden-sm col-md-2" role="complementary">
            <div class="sideaffix">
              <div class="contribution">
                <ul class="nav">
                  <li>
                    <a href="https://github.com/StefH/System.Linq.Dynamic.Core/new/master/apiSpec/new?filename=System_Linq_Dynamic_Core_Parser_ExpressionParser.md&amp;value=---%0Auid%3A%20System.Linq.Dynamic.Core.Parser.ExpressionParser%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A" class="contribution-link">Improve this Doc</a>
                  </li>
                  <li>
                    <a href="https://github.com/StefH/System.Linq.Dynamic.Core/blob/master/src/System.Linq.Dynamic.Core/Parser/ExpressionParser.cs/#L23" class="contribution-link">View Source</a>
                  </li>
                </ul>
              </div>
              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
                <h5>In This Article</h5>
                <div></div>
              </nav>
            </div>
          </div>
        </div>
      </div>
      
      <footer>
        <div class="grad-bottom"></div>
        <div class="footer">
          <div class="container">
            <span class="pull-right">
              <a href="#top">Back to top</a>
            </span>
            
            <span>Generated by <strong>DocFX</strong></span>
          </div>
        </div>
      </footer>
    </div>
    
    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="../styles/docfx.js"></script>
    <script type="text/javascript" src="../styles/main.js"></script>
  </body>
</html>
